package com.yzy.tool
{
	import flash.display.BitmapData;

	public class ReadFile
	{
		public function ReadFile(){}
		
		/**
		 * 
		 * @param source
		 * @param system
		 * @return 
		 * 
		 */		
		public static function readEnterToVector(source:String ,system:String="win"):Vector.<String>{
			var StrRowArr:Vector.<String>=new Vector.<String>();
			if(system=="win"){
				StrRowArr = Vector.<String>(source.split("\r\n"));
			}else{
				StrRowArr = Vector.<String>(source.split("\n"));
			}
			return StrRowArr;
		}
		
		/**
		 * 字符串和对应的类匹配生成vector
		 * @param source：字符串。
		 * @param vectorCls：对应的data 类。
		 * @return vector.<object>。
		 * 字符串必须以 tab 距离相隔：“split("\t")”。
		 */		
		public static function strToVector(source:String ,saveCls:Class ,vecClass:Class):Object{
			var retunVec:* = new vecClass();
			var strVec:Vector.<String>=readEnterToVector(source);
			// 1:\\s{1,}:任意空格 分隔  ;  2:\t: tab键 分隔
//			var reg:RegExp=new RegExp(/\s+/);
			var reg:RegExp=new RegExp(/\t/); 
			var arrName:Array = strVec.shift().split(reg);
			for each(var str:String in strVec) { 
				var property:Array = str.split(reg);
				var pl:int=property.length;
				var cobj:* = new saveCls();
				for (var i:int = 0; i < pl; i++) 
				{
					if(cobj.hasOwnProperty(arrName[i]))
					cobj[arrName[i]] = property[i];
				}
				retunVec.push(cobj);
			} 
			return retunVec;
		}
		
		
		/**
		 * 返回截取文件串的：    类型   or 名字
		 * @param file: file string
		 * @param reType: "type" or "name"
		 * @return string
		 */		
		public static function ExtractProperty(file:String,reType:String="type"):String
		{
			var str:String;
			var reg:RegExp=new RegExp();
			switch(reType)
			{
				case "type":
				{
					reg=/\w+[\.]/;

					break;
				}
				case "name":
				{
					reg=/[\.]\w+/;
					break;
				}	
				default:
				{
					return null;
					break;
				}
			}
			
			return file.replace(reg,"");	
		}
		
		
		public static function byteArrayToBitmapData():BitmapData{
			return new BitmapData(0,0)
		}
		
		
		
//		public static function decodeByteArray(bytes:ByteArray):BitmapData{   
//			if(bytes == null){   
//				throw new Error("bytes参数不能为空!");   
//			}   
//			bytes.uncompress();   
//			if(bytes.length <  6){   
//				throw new Error("bytes参数为无效值!");   
//			} 
//			
//			bytes.position = bytes.length - 1;   
//			var transparent:Boolean = bytes.readBoolean();   
//			bytes.position = bytes.length - 3;   
//			var height:int = bytes.readShort();   
//			bytes.position = bytes.length - 5;   
//			var width:int = bytes.readShort();   
//			bytes.position = 0;   
//			var datas:ByteArray = new ByteArray();             
//			bytes.readBytes(datas,0,bytes.length - 5);   
//			var bmp:BitmapData = new BitmapData(width,height,transparent,0);   
//			bmp.setPixels(new Rectangle(0,0,width,height),datas);   
//			return bmp;   
//		}   
//
//		public static function encodeByteArray(data:BitmapData):ByteArray{   
//			if(data == null){   
//				throw new Error("data参数不能为空!");   
//			}   
//			var bytes:ByteArray = data.getPixels(data.rect);   
//			bytes.writeShort(data.width);   
//			bytes.writeShort(data.height);   
//			bytes.writeBoolean(data.transparent);   
//			bytes.compress();   
//			return bytes;   
//		}  
//		
//		public static function encodeBase64(data:BitmapData):String{
//			return Base64.encodeByteArray(encodeByteArray(data));   
//		}   

		
	}
}